home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 4 / FM Towns Free Software Collection 4 - Disc 1.iso / t_os / mosaic / mosaic2.bas next >
BASIC Source File  |  1991-10-18  |  5KB  |  172 lines

  1. 1000 '                  モザイクプログラム
  2. 1010 ' 
  3. 1020 '                 1991.01.07 
  4. 1030 '
  5. 1040 '            長太郎       
  6. 1050 '
  7. 1060 '
  8. 1070 '
  9. 1080 MOUSE 0
  10. 1090 FLG=0
  11. 1100 STOP OFF
  12. 1110 '
  13. 1120 '
  14. 1130 *TITLE
  15. 1140 '
  16. 1150 SCREEN @0:C=0
  17. 1160 FOR A=0 TO 7:PALETTE A,[C,C,C]:C=C+32:NEXT
  18. 1170 COLOR 7,%2:CLS
  19. 1180 MOUSE 1,320,240,1
  20. 1190 MOUSE 4,140,120,500,360
  21. 1200 HDS0%=&H00E7:HDE0%=&H05E7
  22. 1210 VDS0%=&H002A:VDE0%=&H020A
  23. 1220 ZOOM%=&H00101
  24. 1230 '
  25. 1240 LINE(0,0)-(639,479),PSET,%0,BF
  26. 1250 LINE(140,120)-(500,360),PSET,%3,BF
  27. 1260 LINE(139,119)-(501,361),PSET,%7,B
  28. 1270 LINE(300,150)-(495,300),PSET,%5,B
  29. 1280 SYMBOL(274,124),"MOSAIC",1,1,%7,,,5
  30. 1290 SYMBOL(174,204),"START",1,1,%4,,,5
  31. 1300 SYMBOL(174,234),"SOUND",1,1,%4,,,5
  32. 1310 IF FLG=1 THEN SYMBOL(174,234),"SOUND",1,1,%6,,,5
  33. 1320 SYMBOL(174,284),"E N D",1,1,%4,,,5
  34. 1330 SYMBOL(384,334),"By 長太郎",1,1,%5,,,5
  35. 1340 '
  36. 1350 '
  37. 1360 *MENU
  38. 1370 '
  39. 1380 IF MOUSE(2,0) THEN GOTO 1400
  40. 1390 GOTO 1380
  41. 1400 MX=MOUSE(0):MY=MOUSE(1)
  42. 1410 IF MX>175 AND MX<250 AND MY>205 AND MY<215 THEN GOTO *START
  43. 1420 IF MX>175 AND MX<250 AND MY>235 AND MY<250 THEN GOTO *SOUND
  44. 1430 IF MX>175 AND MX<250 AND MY>285 AND MY<300 THEN GOTO *END
  45. 1440 GOTO 1380
  46. 1450 '
  47. 1460 '
  48. 1470 *END
  49. 1480 '
  50. 1490 SYMBOL(174,284),"E N D",1,1,%6,,,5
  51. 1500 SYMBOL(340,165),"終了します。",1,1,%6,,,5
  52. 1510 SYMBOL(325,205),"[Yes/No]",1,1,%6,,,5
  53. 1520 IF MOUSE(2,0) THEN GOTO 1540
  54. 1530 GOTO 1520
  55. 1540 MX=MOUSE(0):MY=MOUSE(1)
  56. 1550 IF MX>344 AND MX<384 AND MY>205 AND MY<220 THEN CLS:SYSTEM
  57. 1560 IF MX>408 AND MX<432 AND MY>205 AND MY<220 THEN GOTO 1580
  58. 1570 GOTO 1520
  59. 1580 SYMBOL(174,284),"E N D",1,1,%4,,,5
  60. 1590 LINE(301,151)-(494,299),PSET,%3,BF
  61. 1600 GOTO *MENU
  62. 1610 '
  63. 1620 '
  64. 1630 *SOUND
  65. 1640 '
  66. 1650 IF FLG=0 THEN GOTO 1660 ELSE GOTO 1730
  67. 1660 SYMBOL(174,234),"SOUND",1,1,%6,,,5
  68. 1670 OUT &H04E1,&H0C              '左
  69. 1680 OUT &H04E0,&H3F              'SOUND ON
  70. 1690 OUT &H04E1,&H0D              '右
  71. 1700 OUT &H04E0,&H3F              'SOUND ON
  72. 1710 FLG=1:FOR A=0 TO 1000:NEXT A: GOTO *MENU
  73. 1720 '
  74. 1730 SYMBOL(174,234),"SOUND",1,1,%4,,,5
  75. 1740 OUT &H04E1,&H10              '左
  76. 1750 OUT &H04E0,&H3F              'SOUND OFF
  77. 1760 OUT &H04E1,&H11              '右 
  78. 1770 OUT &H04E0,&H3F              'SOUND OFF
  79. 1780 FLG=0:FOR A=0 TO 1000:NEXT A :GOTO *MENU
  80. 1790 '
  81. 1800 '
  82. 1810 *START
  83. 1820 '
  84. 1830 OUT &H0440,&H1E
  85. 1840 VIN=INP(&H0443,1) AND &H01
  86. 1850 IF VIN=1 THEN GOTO 1950
  87. 1860 SYMBOL(174,204),"START",1,1,%6,,,5
  88. 1870 SYMBOL(330,165),"ビデオ信号の入力が",1,1,%6,,,5
  89. 1880 SYMBOL(330,185),"ありません。",1,1,%6,,,5
  90. 1890 S1=MOUSE(0):FOR A=0 TO 1000:NEXT
  91. 1900 S2=MOUSE(0):IF S1=S2 THEN GOTO 1900
  92. 1910 LINE(301,151)-(494,299),PSET,%3,BF
  93. 1920 SYMBOL(174,204),"START",1,1,%4,,,5
  94. 1930 GOTO *MENU
  95. 1940 '
  96. 1950 CLS:SCREEN@ 1:SIMPOSE ON
  97. 1960 OUT &H448,&H01
  98. 1970 OUT &H44A,&H00
  99. 1980 OUT &HFDA0,&H0F
  100. 1990 OUT &H0440,&H1C
  101. 2000 OUT &H0442,&HC0C5
  102. 2010 MOUSE 0
  103. 2020 MOUSE 1,160,120,0
  104. 2030 MOUSE 4,0,0,319,239
  105. 2040 XB=0 : YB=0
  106. 2050 '
  107. 2060 '
  108. 2070 *LOOP
  109. 2080 '
  110. 2090 OUT &H0440,&H1E
  111. 2100 VIN=INP(&H0443,1) AND &H01
  112. 2110 IF VIN=1 THEN GOTO 2250
  113. 2120 OUT &H0440,&H1C
  114. 2130 OUT &H0442,&HC005
  115. 2140 SCREEN@0:CLS
  116. 2150 SYMBOL(200,220),"ビデオ信号の入力がありません。",1,1,4,,,5
  117. 2160 OUT &H0440,&H1E
  118. 2170 VIN=INP(&H0443,1) AND &H01
  119. 2180 IF VIN=1 THEN GOTO 2210
  120. 2190 IF MOUSE(2,0) THEN *TITLE
  121. 2200 GOTO 2160
  122. 2210 SCREEN@1:SIMPOSE ON
  123. 2220 OUT &H0440,&H1C
  124. 2230 OUT &H0442,&HC0C5
  125. 2240 '
  126. 2250 IN$=INKEY$
  127. 2260 IF IN$=CHR$(&H1C) THEN  :XB=XB+16:IF XB>640 THEN XB=640
  128. 2270 IF IN$=CHR$(&H1D) THEN  :XB=XB-16:IF XB<0   THEN XB=0
  129. 2280 IF IN$=CHR$(&H1E) THEN  :YB=YB+8 :IF YB>240 THEN YB=240
  130. 2290 IF IN$=CHR$(&H1F) THEN  :YB=YB-8 :IF YB<0   THEN YB=0
  131. 2300 '
  132. 2310 IF MOUSE(2,0) THEN GOTO *TITLE
  133. 2320 '
  134. 2330 X1=MOUSE(0)*4-XB+&H00E7
  135. 2340 X2=MOUSE(0)*4+XB+&H00E7
  136. 2350 Y1=MOUSE(1)*2-YB+&H002A
  137. 2360 Y2=MOUSE(1)*2+YB+&H002A
  138. 2370 '
  139. 2380 IF IN$="0" THEN ZOOM%=&H0101
  140. 2390 IF IN$="1" THEN ZOOM%=&H0117
  141. 2400 IF IN$="2" THEN ZOOM%=&H013F
  142. 2410 IF IN$="3" THEN ZOOM%=&H017F
  143. 2420 IF IN$="4" THEN ZOOM%=&H01EF
  144. 2430 IF IN$="5" THEN ZOOM%=&H01E3
  145. 2440 '
  146. 2450 IF X1<&H00E7 THEN HDS0%=&H00E7 ELSE HDS0%=X1
  147. 2460 IF X2>&H05E7 THEN HDE0%=&H05E7 ELSE HDE0%=X2
  148. 2470 IF Y1<&H002A THEN VDS0%=&H002A ELSE VDS0%=Y1
  149. 2480 IF Y2>&H020A THEN VDE0%=&H020A ELSE VDE0%=Y2
  150. 2490 '
  151. 2500 VSYNC=INP(&HFDA0,1)
  152. 2510 IF (VSYNC AND &H0001)=0 THEN GOTO 2530 
  153. 2520 GOTO 2500
  154. 2530 VSYNC=INP(&HFDA0,1)
  155. 2540 IF (VSYNC AND &H0001)=1 THEN GOTO 2560
  156. 2550 GOTO 2530
  157. 2560 '
  158. 2570 OUT &H0440,&H09
  159. 2580 OUT &H0442,HDS0%,2
  160. 2590 OUT &H0440,&H0A
  161. 2600 OUT &H0442,HDE0%,2
  162. 2610 OUT &H0440,&H0D
  163. 2620 OUT &H0442,VDS0%,2
  164. 2630 OUT &H0440,&H0E
  165. 2640 OUT &H0442,VDE0%,2
  166. 2650 OUT &H0440,&H12
  167. 2660 OUT &H0442,HDS0%,2
  168. 2670 OUT &H0440,&H1B
  169. 2680 OUT &H0442,ZOOM%,2
  170. 2690 '
  171. 2700 GOTO *LOOP
  172.